package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiPurchaseApplication;
import com.minimalist.common.entity.lindi.vo.purchaseapplication.LindiPurchaseApplicationQueryVO;
import com.minimalist.common.entity.lindi.vo.purchaseapplication.LindiPurchaseApplicationVO;
import com.mybatisflex.core.service.IService;

/**
 * 林地指标交易平台_指标购买申请表 服务层。
 *
 * @author 11987
 * @since 2025-07-01
 */
public interface LindiPurchaseApplicationService extends IService<LindiPurchaseApplication>{

    /**
     * 添加指标购买申请
     *
     * @param purchaseApplicationVO 购买申请VO
     */
    void addPurchaseApplication(LindiPurchaseApplicationVO purchaseApplicationVO);

    /**
     * 根据购买申请ID删除指标购买申请
     *
     * @param purchaseApplicationId 购买申请ID
     */
    void deletePurchaseApplicationByPurchaseApplicationId(Long purchaseApplicationId);

    /**
     * 根据购买申请ID修改指标购买申请
     *
     * @param purchaseApplicationVO 购买申请VO
     */
    void updatePurchaseApplicationByPurchaseApplicationId(LindiPurchaseApplicationVO purchaseApplicationVO);

    /**
     * 分页查询指标购买申请列表
     *
     * @param queryVO 查询条件
     * @return 分页结果
     */
    PageResp<LindiPurchaseApplicationVO> getPagePurchaseApplicationList(LindiPurchaseApplicationQueryVO queryVO);

    /**
     * 根据购买申请ID查询指标购买申请详情
     *
     * @param purchaseApplicationId 购买申请ID
     * @return 购买申请详情
     */
    LindiPurchaseApplicationVO getPurchaseApplicationByPurchaseApplicationId(Long purchaseApplicationId);

    /**
     * 根据文件ID删除指标购买申请文件
     *
     * @param fileId 文件ID
     */
    void deletePurchaseApplicationFileByFileId(Long fileId);
}
